package com.mirana.frame.db.base.anno;

import com.mirana.frame.base.model.BaseModel;
import com.mirana.frame.db.base.extend.type.FkConstraint;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * 外键
 */
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RUNTIME)
public @interface FKPlus {

    // 外键对应的table
    String table() default "";

    // 外键对应的table的class
    Class<? extends BaseModel> tableClass() default BaseModel.class;

    // 外键对应的列
    String column() default "id";

    // 删除时候的策略
    FkConstraint onDelete() default FkConstraint.CASCADE;

    // 更新时候的策略
    FkConstraint onUpdate() default FkConstraint.CASCADE;

}
